
<div class="layui-fluid" id="VIEW-module-admin" lay-title="使用说明">
  <div class="layui-row layui-col-space10">
    <div class="layui-col-lg12">
      
      <div class="layui-card">
        <div class="layui-card-body">
          <h3 class="nepadmin-c-red nepadmin-bold">注意事项</h3>
          <hr>
          <p>
          1.本项目运行不依赖数据库，推荐使用maven打成jar包部署运行，在jar所在目录下加入项目中的配置文件config.xml跟模板文件夹template。<br>
          2.数据库建表时，最好写上COMMENT注释；并且按约定的格式注释（格式：字段文本;表单类型;val1:text1,val2:text2;）比如有个flag字段,
          	 COMMENT 状态;select;0:可用,1:不可用<br>
          3.推荐每张表至少建立一个主键（不推荐组合主键）或唯一索引（复合索引）。<br>
          4.模板文件与配置文件请保持一致，否则出错，生成代码失败。<br>
          5.同模块中表不要重复配置，不然生成的代码数据会混乱，不正确。不同模块请配置不同包名。<br>
          </p>
        </div>
      </div>
      
	  <div class="layui-card">
        <div class="layui-card-body">
          <h3 class="nepadmin-c-red nepadmin-bold">模板使用说明</h3>
          <hr>
          <p>
          1.本项目模板是使用freemarker编写的，只要会点freemarker，编写模板也很容易。<br>
          2.模板可用数据说明（如下表，可查看参考项目中的默认模板）。<br>
          </p>
          
           <table class="layui-table">
            <colgroup>
              <col width="100">
              <col width="100">
              <col>
              <col width="150">
            </colgroup>
            
            <thead>
              <tr>
                <th>属性</th>
                <th>类型</th>
                <th>说明</th>
                <th>示例</th>
              </tr>
            </thead>
            <tbody>
              <tr>
            	<th colspan="4" class="nepadmin-c-red nepadmin-bold nepadmin-font-14">基础属性</th>
              </tr>
              <tr>
                <td>basePackage</td>
                <td>String</td>
                <td>基础包名</td>
                <td>${basePackage}输出基础包名，如下一样</td>
              </tr>
              <tr>
                <td>entityPackage</td>
                <td>String</td>
                <td>实体类包名</td>
                <td></td>
              </tr>
              <tr>
                <td>servicePackage</td>
                <td>String</td>
                <td>service接口包名</td>
                <td></td>
              </tr>
              <tr>
                <td>serviceImplPackage</td>
                <td>String</td>
                <td>service实现类包名，默认impl</td>
                <td></td>
              </tr>
              <tr>
                <td>daoPackage</td>
                <td>String</td>
                <td>dao接口包名</td>
                <td></td>
              </tr>
              <tr>
                <td>daoImplPackage</td>
                <td>String</td>
                <td>dao实现类包名，默认impl</td>
                <td></td>
              </tr>
              <tr>
                <td>controllerPackage</td>
                <td>String</td>
                <td>controller类包名</td>
                <td></td>
              </tr>
              <tr>
                <td>mapperPackage</td>
                <td>String</td>
                <td>mapperXML包名</td>
                <td></td>
              </tr>
              
              <tr>
                <td>persistence</td>
                <td>String</td>
                <td>持久层框架</td>
                <td>可以用来判断，mybatis or hibernate</td>
              </tr>
              <tr>
            	<th colspan="4" class="nepadmin-c-red nepadmin-bold nepadmin-font-14">Table属性</th>
              </tr>
              <tr>
                <td>tabName</td>
                <td>String</td>
                <td>表名</td>
                <td>${tabName}就可以输出表名，如下一样</td>
              </tr>
              
              <tr>
                <td>lowEntName</td>
                <td>String</td>
                <td>首字母小写的实体类名，下划线表名会自动转成驼峰命名</td>
                <td></td>
              </tr>
              <tr>
                <td>entName</td>
                <td>String</td>
                <td>对应表的实体类，下划线表名会自动转成驼峰命名（如果有去掉前缀，则为去掉前缀的类名）</td>
                <td></td>
              </tr>
              <tr>
                <td>remark</td>
                <td>String</td>
                <td>表comment</td>
                <td></td>
              </tr>
              <tr>
                <td>impClasses</td>
                <td>List&lt;String&gt;</td>
                <td>需要导入字段类型的全类名集合</td>
                <td>如：java.util.Date</td>
              </tr>
              <tr>
                <td>columns</td>
                <td>List&lt;Column&gt;</td>
                <td>表字段，属性等（详见Column属性）</td>
                <td>利用&lt;#list columns as col&gt;freemarker标签，
                	可循环取出Column属性</td>
              </tr>
              <tr>
                <td>refTables</td>
                <td>List&lt;RefTable&gt;</td>
                <td>关联表的信息（详见RefTable属性）</td>
                <td>利用list标签, 循环取出RefTable属性</td>
              </tr>
             
              <tr>
                <td>uniIdxCols</td>
                <td>List&lt;Column&gt;</td>
                <td>如果有主键，则主键字段集合；没有主键，则取其中一组唯一索引字段集合；都没有，则空集合</td>
                <td>利用list标签, 可取出Column</td>
              </tr>
              <tr>
                <td>enableColPos</td>
                <td>List&lt;String&gt;</td>
                <td>是否配置了字段位置标识，现支持3个（searchPos查询条件，listPos列表项，inputPos表单输入项）</td>
                <td>利用list标签, 可取出Column</td>
              </tr>
              <tr>
            	<th colspan="4" class="nepadmin-c-red nepadmin-bold nepadmin-font-14">RefTable属性</th>
              </tr>
              <tr>
                <td>tabName</td>
                <td>String</td>
                <td>关联表的表名</td>
                <td></td>
              </tr>
              <tr>
                <td>lowEntName</td>
                <td>String</td>
                <td>首字母小写的关联表的实体类名，下划线表名会自动转成驼峰命名</td>
                <td></td>
              </tr>
              <tr>
                <td>entName</td>
                <td>String</td>
                <td>关联表的实体类，下划线表名会自动转成驼峰命名</td>
                <td></td>
              </tr>
              <tr>
                <td>remark</td>
                <td>String</td>
                <td>关联表comment注释</td>
                <td></td>
              </tr>
              <tr>
                <td>columns</td>
                <td>List&lt;Column&gt;</td>
                <td>关联表字段，属性等（详见Column属性）</td>
                <td></td>
              </tr>
              <tr>
                <td>refType</td>
                <td>String</td>
                <td>关联属性(OneToMany,OneToOne,ManyToOne,ManyToMany)</td>
                <td></td>
              </tr>
              <tr>
                <td>refColMap</td>
                <td>Map&lt;String,String&gt;</td>
                <td>key主表字段，value关联表字段（特殊情况：多对多时value为中间表字段）</td>
                <td></td>
              </tr>
              <tr>
                <td>refPropMap</td>
                <td>Map&lt;String,String&gt;</td>
                <td>关联字段对应的属性，key主表实体类属性，value从表实体类属性（暂没什么用处）</td>
                <td></td>
              </tr>
               <tr>
                <td>midTabName</td>
                <td>String</td>
                <td>多对多时的中间表名</td>
                <td></td>
              </tr>
              <tr>
                <td>midRefColMap</td>
                <td>Map&lt;String,String&gt;</td>
                <td>key中间表字段，value关联表字段</td>
                <td></td>
              </tr>
              <tr>
                <td>enableColPos</td>
                <td>List&lt;String&gt;</td>
                <td>是否配置了字段位置标识，现支持3个（searchPos查询条件，listPos列表项，inputPos表单输入项）</td>
                <td>利用list标签, 可取出Column</td>
              </tr>
              <tr>
            	<th colspan="4" class="nepadmin-c-red nepadmin-bold nepadmin-font-14">Column属性</th>
              </tr>
              <tr>
                <td>colName</td>
                <td>String</td>
                <td>表字段名</td>
                <td></td>
              </tr>
              <tr>
                <td>colType</td>
                <td>String</td>
                <td>如果是mybatis则为jdbcType,hibernate则为hibernate的映射类型</td>
                <td></td>
              </tr>
              <tr>
                <td>remark</td>
                <td>String</td>
                <td>表字段comment注释</td>
                <td>comment约定格式 --> 字段文本（对应labelName）;表单类型（对应tagType）;val1:text1,val2:text2（对应colValueMap）;
                	程序会自动加载到对应字段。也可以在config.xml重定义；
                	表单类型现支持(text,select,textarea,chackbox,radio,date,hidden,file)
                </td>
              </tr>
              <tr>
                <td>propName</td>
                <td>String</td>
                <td>字段对应的实体类属性名</td>
                <td></td>
              </tr>
              <tr>
                <td>propType</td>
                <td>String</td>
                <td>属性类型，即字段类型对应的java类型</td>
                <td></td>
              </tr>
              <tr>
                <td>upperPropName</td>
                <td>String</td>
                <td>属性名首字母大写，主要用来get..,set..</td>
                <td></td>
              </tr>
              <tr>
                <td>nullable</td>
                <td>Boolean</td>
                <td>表字段是否为空</td>
                <td></td>
              </tr>
              <tr>
                <td>pk</td>
                <td>Boolean</td>
                <td>表字段是否为主键</td>
                <td></td>
              </tr>
              <tr>
                <td>length</td>
                <td>String</td>
                <td>表字段文本类型的长度</td>
                <td></td>
              </tr>
              <tr>
                <td>defaultValue</td>
                <td>Object</td>
                <td>表字段默认值</td>
                <td></td>
              </tr>
              <tr>
                <td>labelName</td>
                <td>String</td>
                <td>表字段文本，对应COMMENT格式（字段文本;表单类型;val1:text1,val2:text2;）第1个
                	，可在配置文件column标签自定义字段文本</td>
                <td>可用在页面模板上</td>
              </tr>
              <tr>
                <td>tagType</td>
                <td>String</td>
                <td>表单标签类型，对应COMMENT格式（字段文本;表单类型;val1:text1,val2:text2;）第2个
                	，可在配置文件column标签自定义表单类型</td>
                <td></td>
              </tr>
              <tr>
                <td>colValueMap</td>
                <td>Map&lt;String,String&gt;</td>
                <td>表字段值，对应COMMENT格式（字段文本;表单类型;val1:text1,val2:text2;）第3个，
                	可在配置文件中column标签内容中自定义的字段值</td>
                <td>
                </td>
              </tr>
              <tr>
                <td>positions</td>
                <td>List&lt;String&gt;</td>
                <td>表字段位置标识，现支持3个
                	serachPos:页面查询条件；
                	listPos:页面列表项；
                	inputPos:页面表单输入项。
                </td>
                <td>
                </td>
              </tr>
            </tbody>
          </table>
          
        </div>
      </div>

    </div>
  </div>
</div>
